package withdrawal

import "yundian/internel/pkg/dingo"

// Analysis Model 统计临时表
type AnalysisModel struct {
	ID               int        `gorm:"column:id" json:"id"`                                  //
	UserID           int        `gorm:"column:user_id" json:"userId"`                         // 用户ID

	Money            int64      `gorm:"column:money" json:"money"`                            // 申请金额 单位-分
	MoneyStr         string     `gorm:"column:money_str" json:"moneyStr"`                     // 申请金额 单位-元

	UpdateAt         dingo.Time `gorm:"column:update_at" json:"updateAt"`                     // 更新时间
	CreateAt         dingo.Time `gorm:"column:create_at" json:"createAt"`                     // 新增时间
}

type UserWithdrawalLog struct {
	ID               int        `gorm:"column:id" json:"id"`
	Name             string     `gorm:"column:name" json:"name"`
	Phone            string     `gorm:"column:phone" json:"phone"`
	TradeNo          string     `gorm:"column:trade_no" json:"tradeNo"`

	MoneyStr         string     `gorm:"column:money_str" json:"moneyStr"`
	TransferMoneyStr string     `gorm:"column:transfer_money_str" json:"transferMoneyStr"`

	State            uint8      `gorm:"column:state" json:"state"`
	VerifyStatus     uint8      `gorm:"column:verify_status" json:"verifyStatus"`

	CreateAt         dingo.Time `gorm:"column:create_at" json:"createAt"`
}

// model init
func New() *WithdrawalLogModel {
	return &WithdrawalLogModel{}
}

// TableName
func (m *WithdrawalLogModel) TableName() string {
	return "withdrawal_log"
}

func (m *WithdrawalLogModel) Mutate(attrs ...WithdrawalLogAttr) *WithdrawalLogModel {
	WithdrawalLogAttrs(attrs).Apply(m)
	return m
}

// 转帐订单
type TransferOrder struct {
	TradeNo       string     `gorm:"column:trade_no" json:"tradeNo"`             // 订单编号
	UserID        int        `gorm:"column:user_id" json:"userId"`               // 用户ID
	BusinessType  int        `gorm:"column:business_type" json:"businessType"`   // 业务类型
	TransferType  int        `gorm:"column:transfer_type" json:"transferType"`   // 转帐类型 1:付款到零钱 2:付款到银行卡 3:付款到二维码

	Money         int        `gorm:"column:money" json:"money"`                  // 转帐金额 单位 分
	Note          string     `gorm:"column:note" json:"note"`                    // 转帐说明
	State         int        `gorm:"column:state" json:"state"`                  // 状态 2:已处理 3:处理失败

	ReceivingInfo string     `gorm:"column:receiving_info" json:"receivingInfo"` // 收款信息 json nick_name,appid,openid
	ReceivingType int        `gorm:"column:receiving_type" json:"receivingType"` // 收款类型 1:微信帐号 2:银行卡 3:微信二维码

	WxAppID       string     `gorm:"column:wx_appid" json:"wxAppId"`             // 公众号Appid
	WxOpenID      string     `gorm:"column:wx_openid" json:"wxOpenId"`           // 微信公众号openid
	PayeeID       string     `gorm:"column:payee_id" json:"payeeId"`             // 收款人ID  openid
	PayeeType     int        `gorm:"column:payee_type" json:"payeeType"`         // 收款人类型 1:个人

	UpdateAt      dingo.Time `gorm:"column:update_at" json:"updateAt"`           // 更新时间
	CreateAt      dingo.Time `gorm:"column:create_at" json:"createAt"`           // 创建时间
}
